home *** CD-ROM | disk | FTP | other *** search
/ SGI Freeware 1999 August / SGI Freeware 1999 August.iso / dist / fw_emacs.idb / usr / freeware / info / gnus-4.z / gnus-4
Encoding:
GNU Info File  |  1998-10-28  |  48.3 KB  |  1,368 lines

  1. This is Info file ../info/gnus, produced by Makeinfo-1.63 from the
  2. input file gnus.texi.
  3.  
  4.    This file documents Gnus, the GNU Emacs newsreader.
  5.  
  6.    Copyright (C) 1995,96 Free Software Foundation, Inc.
  7.  
  8.    Permission is granted to make and distribute verbatim copies of this
  9. manual provided the copyright notice and this permission notice are
  10. preserved on all copies.
  11.  
  12.    Permission is granted to copy and distribute modified versions of
  13. this manual under the conditions for verbatim copying, provided also
  14. that the entire resulting derived work is distributed under the terms
  15. of a permission notice identical to this one.
  16.  
  17.    Permission is granted to copy and distribute translations of this
  18. manual into another language, under the above conditions for modified
  19. versions.
  20.  
  21. 
  22. File: gnus,  Node: Article Buttons,  Next: Article Date,  Prev: Article Washing,  Up: Article Treatment
  23.  
  24. Article Buttons
  25. ---------------
  26.  
  27.    People often include references to other stuff in articles, and it
  28. would be nice if Gnus could just fetch whatever it is that people talk
  29. about with the minimum of fuzz.
  30.  
  31.    Gnus adds "buttons" to certain standard references by default:
  32. Well-formed URLs, mail addresses and Message-IDs.  This is controlled by
  33. two variables, one that handles article bodies and one that handles
  34. article heads:
  35.  
  36. `gnus-button-alist'
  37.      This is an alist where each entry has this form:
  38.  
  39.           (REGEXP BUTTON-PAR USE-P FUNCTION DATA-PAR)
  40.  
  41.     REGEXP
  42.           All text that match this regular expression will be
  43.           considered an external reference.  Here's a typical regexp
  44.           that match embedded URLs: `<URL:\\([^\n\r>]*\\)>'.
  45.  
  46.     BUTTON-PAR
  47.           Gnus has to know which parts of the match is to be
  48.           highlighted.  This is a number that says what sub-expression
  49.           of the regexp that is to be highlighted.  If you want it all
  50.           highlighted, you use `0' here.
  51.  
  52.     USE-P
  53.           This form will be `eval'ed, and if the result is non-`nil',
  54.           this is considered a match.  This is useful if you want extra
  55.           sifting to avoid false matches.
  56.  
  57.     FUNCTION
  58.           This function will be called when you click on this button.
  59.  
  60.     DATA-PAR
  61.           As with BUTTON-PAR, this is a sub-expression number, but this
  62.           one says which part of the match is to be sent as data to
  63.           FUNCTION.
  64.  
  65.      So the full entry for buttonizing URLs is then
  66.  
  67.           ("<URL:\\([^\n\r>]*\\)>" 0 t gnus-button-url 1)
  68.  
  69. `gnus-header-button-alist'
  70.      This is just like the other alist, except that it is applied to the
  71.      article head only, and that each entry has an additional element
  72.      that is used to say what headers to apply the buttonize coding to:
  73.  
  74.           (HEADER REGEXP BUTTON-PAR USE-P FUNCTION DATA-PAR)
  75.  
  76.      HEADER is a regular expression.
  77.  
  78. `gnus-button-url-regexp'
  79.      A regular expression that matches embedded URLs.  It is used in the
  80.      default values of the variables above.
  81.  
  82. `gnus-article-button-face'
  83.      Face used on bottons.
  84.  
  85. `gnus-article-mouse-face'
  86.      Face is used when the mouse cursor is over a button.
  87.  
  88. 
  89. File: gnus,  Node: Article Date,  Prev: Article Buttons,  Up: Article Treatment
  90.  
  91. Article Date
  92. ------------
  93.  
  94.    The date is most likely generated in some obscure timezone you've
  95. never heard of, so it's quite nice to be able to find out what the time
  96. was when the article was sent.
  97.  
  98. `W T u'
  99.      Display the date in UT (aka. GMT, aka ZULU)
  100.      (`gnus-article-date-ut').
  101.  
  102. `W T l'
  103.      Display the date in the local timezone (`gnus-article-date-local').
  104.  
  105. `W T e'
  106.      Say how much time has (e)lapsed between the article was posted and
  107.      now (`gnus-article-date-lapsed').
  108.  
  109. `W T o'
  110.      Display the original date (`gnus-article-date-original').  This can
  111.      be useful if you normally use some other conversion function and is
  112.      worried that it might be doing something totally wrong.  Say,
  113.      claiming that the article was posted in 1854.  Although something
  114.      like that is *totally* impossible.  Don't you trust me? *titter*
  115.  
  116. 
  117. File: gnus,  Node: Summary Sorting,  Next: Finding the Parent,  Prev: Article Treatment,  Up: The Summary Buffer
  118.  
  119. Summary Sorting
  120. ===============
  121.  
  122.    You can have the summary buffer sorted in various ways, even though I
  123. can't really see why you'd want that.
  124.  
  125. `C-c C-s C-n'
  126.      Sort by article number (`gnus-summary-sort-by-number').
  127.  
  128. `C-c C-s C-a'
  129.      Sort by author (`gnus-summary-sort-by-author').
  130.  
  131. `C-c C-s C-s'
  132.      Sort by subject (`gnus-summary-sort-by-subject').
  133.  
  134. `C-c C-s C-d'
  135.      Sort by date (`gnus-summary-sort-by-date').
  136.  
  137. `C-c C-s C-i'
  138.      Sort by score (`gnus-summary-sort-by-score').
  139.  
  140.    These functions will work both when you use threading and when you
  141. don't use threading.  In the latter case, all summary lines will be
  142. sorted, line by line.  In the former case, sorting will be done on a
  143. root-by-root basis, which might not be what you were looking for.  To
  144. toggle whether to use threading, type `T T' (*note Thread Commands::.).
  145.  
  146. 
  147. File: gnus,  Node: Finding the Parent,  Next: Alternative Approaches,  Prev: Summary Sorting,  Up: The Summary Buffer
  148.  
  149. Finding the Parent
  150. ==================
  151.  
  152.    If you'd like to read the parent of the current article, and it is
  153. not displayed in the summary buffer, you might still be able to.  That
  154. is, if the current group is fetched by NNTP, the parent hasn't expired
  155. and the `References' in the current article are not mangled, you can
  156. just press `^' or `A r' (`gnus-summary-refer-parent-article').  If
  157. everything goes well, you'll get the parent.  If the parent is already
  158. displayed in the summary buffer, point will just move to this article.
  159.  
  160.    You can have Gnus fetch all articles mentioned in the `References'
  161. header of the article by pushing `A R'
  162. (`gnus-summary-refer-references').
  163.  
  164.    You can also ask the NNTP server for an arbitrary article, no matter
  165. what group it belongs to.  `M-^' (`gnus-summary-refer-article') will
  166. ask you for a `Message-ID', which is one of those long thingies that
  167. look something like `<38o6up$6f2@hymir.ifi.uio.no>'.  You have to get
  168. it all exactly right.  No fuzzy searches, I'm afraid.
  169.  
  170.    If the group you are reading is located on a backend that does not
  171. support fetching by `Message-ID' very well (like `nnspool'), you can
  172. set `gnus-refer-article-method' to an NNTP method.  It would, perhaps,
  173. be best if the NNTP server you consult is the same as the one that
  174. keeps the spool you are reading from updated, but that's not really
  175. necessary.
  176.  
  177.    Most of the mail backends support fetching by `Message-ID', but do
  178. not do a particularly excellent job of it.  That is, `nnmbox' and
  179. `nnbabyl' are able to locate articles from any groups, while `nnml' and
  180. `nnfolder' are only able to locate articles that have been posted to
  181. the current group.  (Anything else would be too time consuming.)
  182. `nnmh' does not support this at all.
  183.  
  184. 
  185. File: gnus,  Node: Alternative Approaches,  Next: Tree Display,  Prev: Finding the Parent,  Up: The Summary Buffer
  186.  
  187. Alternative Approaches
  188. ======================
  189.  
  190.    Different people like to read news using different methods.  This
  191. being Gnus, we offer a small selection of minor modes for the summary
  192. buffers.
  193.  
  194. * Menu:
  195.  
  196. * Pick and Read::               First mark articles and then read them.
  197. * Binary Groups::               Auto-decode all articles.
  198.  
  199. 
  200. File: gnus,  Node: Pick and Read,  Next: Binary Groups,  Up: Alternative Approaches
  201.  
  202. Pick and Read
  203. -------------
  204.  
  205.    Some newsreaders (like `nn' and, uhm, `nn') use a two-phased reading
  206. interface.  The user first marks the articles she wants to read from a
  207. summary buffer.  Then she starts reading the articles with just an
  208. article buffer displayed.
  209.  
  210.    Gnus provides a summary buffer minor mode that allows
  211. this--`gnus-pick-mode'.  This basically means that a few process mark
  212. commands become one-keystroke commands to allow easy marking, and it
  213. makes one additional command for switching to the summary buffer
  214. available.
  215.  
  216.    Here are the available keystrokes when using pick mode:
  217.  
  218. `SPACE'
  219.      Pick the article (`gnus-summary-mark-as-processable').
  220.  
  221. `u'
  222.      Unpick the article (`gnus-summary-unmark-as-processable').
  223.  
  224. `U'
  225.      Unpick all articles (`gnus-summary-unmark-all-processable').
  226.  
  227. `t'
  228.      Pick the thread (`gnus-uu-mark-thread').
  229.  
  230. `T'
  231.      Unpick the thread (`gnus-uu-unmark-thread').
  232.  
  233. `r'
  234.      Pick the region (`gnus-uu-mark-region').
  235.  
  236. `R'
  237.      Unpick the region (`gnus-uu-unmark-region').
  238.  
  239. `e'
  240.      Pick articles that match a regexp (`gnus-uu-mark-by-regexp').
  241.  
  242. `E'
  243.      Unpick articles that match a regexp (`gnus-uu-unmark-by-regexp').
  244.  
  245. `b'
  246.      Pick the buffer (`gnus-uu-mark-buffer').
  247.  
  248. `B'
  249.      Unpick the buffer (`gnus-uu-unmark-buffer').
  250.  
  251. `RET'
  252.      Start reading the picked articles (`gnus-pick-start-reading').  If
  253.      given a prefix, mark all unpicked articles as read first.  If
  254.      `gnus-pick-display-summary' is non-`nil', the summary buffer will
  255.      still be visible when you are reading.
  256.  
  257.    If this sounds like a good idea to you, you could say:
  258.  
  259.      (add-hook 'gnus-summary-mode-hook 'gnus-pick-mode)
  260.  
  261.    `gnus-pick-mode-hook' is run in pick minor mode buffers.
  262.  
  263. 
  264. File: gnus,  Node: Binary Groups,  Prev: Pick and Read,  Up: Alternative Approaches
  265.  
  266. Binary Groups
  267. -------------
  268.  
  269.    If you spend much time in binary groups, you may grow tired of
  270. hitting `X u', `n', `RET' all the time.  `M-x gnus-binary-mode' is a
  271. minor mode for summary buffers that makes all ordinary Gnus article
  272. selection functions uudecode series of articles and display the result
  273. instead of just displaying the articles the normal way.
  274.  
  275.    In fact, the only way to see the actual articles if you have turned
  276. this mode on is the `g' command (`gnus-binary-show-article').
  277.  
  278.    `gnus-binary-mode-hook' is called in binary minor mode buffers.
  279.  
  280. 
  281. File: gnus,  Node: Tree Display,  Next: Mail Group Commands,  Prev: Alternative Approaches,  Up: The Summary Buffer
  282.  
  283. Tree Display
  284. ============
  285.  
  286.    If you don't like the normal Gnus summary display, you might try
  287. setting `gnus-use-trees' to `t'.  This will create (by default) an
  288. additional "tree buffer".  You can execute all summary mode commands in
  289. the tree buffer.
  290.  
  291.    There are a few variables to customize the tree display, of course:
  292.  
  293. `gnus-tree-mode-hook'
  294.      A hook called in all tree mode buffers.
  295.  
  296. `gnus-tree-mode-line-format'
  297.      A format string for the mode bar in the tree mode buffers.  The
  298.      default is `Gnus: %%b [%A] %Z'.  For a list of legal specs, *note
  299.      Summary Buffer Mode Line::..
  300.  
  301. `gnus-selected-tree-face'
  302.      Face used for highlighting the selected article in the tree
  303.      buffer.  The default is `modeline'.
  304.  
  305. `gnus-tree-line-format'
  306.      A format string for the tree nodes.  The name is a bit of a
  307.      misnomer, though--it doesn't define a line, but just the node.
  308.      The default value is `%(%[%3,3n%]%)', which displays the first
  309.      three characters of the name of the poster.  It is vital that all
  310.      nodes are of the same length, so you *must* use `%4,4n'-like
  311.      specifiers.
  312.  
  313.      Legal specs are:
  314.  
  315.     `n'
  316.           The name of the poster.
  317.  
  318.     `f'
  319.           The `From' header.
  320.  
  321.     `N'
  322.           The number of the article.
  323.  
  324.     `['
  325.           The opening bracket.
  326.  
  327.     `]'
  328.           The closing bracket.
  329.  
  330.     `s'
  331.           The subject.
  332.  
  333.      *Note Formatting Variables::.
  334.  
  335.      Variables related to the display are:
  336.  
  337.     `gnus-tree-brackets'
  338.           This is used for differentiating between "real" articles and
  339.           "sparse" articles.  The format is ((REAL-OPEN . REAL-CLOSE)
  340.           (SPARSE-OPEN . SPARSE-CLOSE) (DUMMY-OPEN . DUMMY-CLOSE)), and
  341.           the default is `((?[ . ?]) (?( . ?)) (?{ . ?}))'.
  342.  
  343.     `gnus-tree-parent-child-edges'
  344.           This is a list that contains the characters used for
  345.           connecting parent nodes to their children.  The default is
  346.           `(?- ?\\ ?|)'.
  347.  
  348. `gnus-tree-minimize-window'
  349.      If this variable is non-`nil', Gnus will try to keep the tree
  350.      buffer as small as possible to allow more room for the other Gnus
  351.      windows.  If this variable is a number, the tree buffer will never
  352.      be higher than that number.  The default is `t'.
  353.  
  354. `gnus-generate-tree-function'
  355.      The function that actually generates the thread tree.  Two
  356.      predefined functions are available:
  357.      `gnus-generate-horizontal-tree' and `gnus-generate-vertical-tree'
  358.      (which is the default).
  359.  
  360.    Here's and example from a horizontal tree buffer:
  361.  
  362.      {***}-(***)-[odd]-[Gun]
  363.           |     \[Jan]
  364.           |     \[odd]-[Eri]
  365.           |     \(***)-[Eri]
  366.           |           \[odd]-[Paa]
  367.           \[Bjo]
  368.           \[Gun]
  369.           \[Gun]-[Jor]
  370.  
  371.    Here's the same thread displayed in a vertical tree buffer:
  372.  
  373.      {***}
  374.        |--------------------------\-----\-----\
  375.      (***)                         [Bjo] [Gun] [Gun]
  376.        |--\-----\-----\                          |
  377.      [odd] [Jan] [odd] (***)                   [Jor]
  378.        |           |     |--\
  379.      [Gun]       [Eri] [Eri] [odd]
  380.                                |
  381.                              [Paa]
  382.  
  383. 
  384. File: gnus,  Node: Mail Group Commands,  Next: Various Summary Stuff,  Prev: Tree Display,  Up: The Summary Buffer
  385.  
  386. Mail Group Commands
  387. ===================
  388.  
  389.    Some commands only make sense in mail groups.  If these commands are
  390. illegal in the current group, they will raise a hell and let you know.
  391.  
  392.    All these commands (except the expiry and edit commands) use the
  393. process/prefix convention (*note Process/Prefix::.).
  394.  
  395. `B e'
  396.      Expire all expirable articles in the group
  397.      (`gnus-summary-expire-articles').
  398.  
  399. `B M-C-e'
  400.      Expunge all the expirable articles in the group
  401.      (`gnus-summary-expire-articles-now').  This means that *all*
  402.      articles that are eligible for expiry in the current group will
  403.      disappear forever into that big `/dev/null' in the sky.
  404.  
  405. `B DEL'
  406.      Delete the mail article.  This is "delete" as in "delete it from
  407.      your disk forever and ever, never to return again." Use with
  408.      caution.  (`gnus-summary-delete-article').
  409.  
  410. `B m'
  411.      Move the article from one mail group to another
  412.      (`gnus-summary-move-article').
  413.  
  414. `B c'
  415.      Copy the article from one group (mail group or not) to a mail group
  416.      (`gnus-summary-copy-article').
  417.  
  418. `B C'
  419.      Crosspost the current article to some other group
  420.      (`gnus-summary-crosspost-article').  This will create a new copy of
  421.      the article in the other group, and the Xref headers of the
  422.      article will be properly updated.
  423.  
  424. `B i'
  425.      Import an arbitrary file into the current mail newsgroup
  426.      (`gnus-summary-import-article').  You will be prompted for a file
  427.      name, a `From' header and a `Subject' header.
  428.  
  429. `B r'
  430.      Respool the mail article (`gnus-summary-move-article').
  431.  
  432. `B w'
  433. `e'
  434.      Edit the current article (`gnus-summary-edit-article').  To finish
  435.      editing and make the changes permanent, type `C-c C-c'
  436.      (`gnus-summary-edit-article-done').
  437.  
  438. `B q'
  439.      If you want to re-spool an article, you might be curious as to
  440.      what group the article will end up in before you do the
  441.      re-spooling.  This command will tell you
  442.      (`gnus-summary-respool-query').
  443.  
  444.    If you move (or copy) articles regularly, you might wish to have Gnus
  445. suggest where to put the articles.  `gnus-move-split-methods' is a
  446. variable that uses the same syntax as `gnus-split-methods' (*note
  447. Saving Articles::.).  You may customize that variable to create
  448. suggestions you find reasonable.
  449.  
  450. 
  451. File: gnus,  Node: Various Summary Stuff,  Next: Exiting the Summary Buffer,  Prev: Mail Group Commands,  Up: The Summary Buffer
  452.  
  453. Various Summary Stuff
  454. =====================
  455.  
  456. * Menu:
  457.  
  458. * Summary Group Information::         Information oriented commands.
  459. * Searching for Articles::            Multiple article commands.
  460. * Really Various Summary Commands::   Those pesky non-conformant commands.
  461.  
  462. `gnus-summary-mode-hook'
  463.      This hook is called when creating a summary mode buffer.
  464.  
  465. `gnus-summary-generate-hook'
  466.      This is called as the last thing before doing the threading and the
  467.      generation of the summary buffer.  It's quite convenient for
  468.      customizing the threading variables based on what data the
  469.      newsgroup has.  This hook is called from the summary buffer after
  470.      most summary buffer variables has been set.
  471.  
  472. `gnus-summary-prepare-hook'
  473.      Is is called after the summary buffer has been generated.  You
  474.      might use it to, for instance, highlight lines or modify the look
  475.      of the buffer in some other ungodly manner.  I don't care.
  476.  
  477. 
  478. File: gnus,  Node: Summary Group Information,  Next: Searching for Articles,  Up: Various Summary Stuff
  479.  
  480. Summary Group Information
  481. -------------------------
  482.  
  483. `H f'
  484.      Try to fetch the FAQ (list of frequently asked questions) for the
  485.      current group (`gnus-summary-fetch-faq').  Gnus will try to get the
  486.      FAQ from `gnus-group-faq-directory', which is usually a directory
  487.      on a remote machine.  This variable can also be a list of
  488.      directories.  In that case, giving a prefix to this command will
  489.      allow you to choose between the various sites.  `ange-ftp'
  490.      probably will be used for fetching the file.
  491.  
  492. `H d'
  493.      Give a brief description of the current group
  494.      (`gnus-summary-describe-group').  If given a prefix, force
  495.      rereading the description from the server.
  496.  
  497. `H h'
  498.      Give a very brief description of the most important summary
  499.      keystrokes (`gnus-summary-describe-briefly').
  500.  
  501. `H i'
  502.      Go to the Gnus info node (`gnus-info-find-node').
  503.  
  504. 
  505. File: gnus,  Node: Searching for Articles,  Next: Really Various Summary Commands,  Prev: Summary Group Information,  Up: Various Summary Stuff
  506.  
  507. Searching for Articles
  508. ----------------------
  509.  
  510. `M-s'
  511.      Search through all subsequent articles for a regexp
  512.      (`gnus-summary-search-article-forward').
  513.  
  514. `M-r'
  515.      Search through all previous articles for a regexp
  516.      (`gnus-summary-search-article-backward').
  517.  
  518. `&'
  519.      This command will prompt you for a header field, a regular
  520.      expression to match on this field, and a command to be executed if
  521.      the match is made (`gnus-summary-execute-command').
  522.  
  523. `M-&'
  524.      Perform any operation on all articles that have been marked with
  525.      the process mark (`gnus-summary-universal-argument').
  526.  
  527. 
  528. File: gnus,  Node: Really Various Summary Commands,  Prev: Searching for Articles,  Up: Various Summary Stuff
  529.  
  530. Really Various Summary Commands
  531. -------------------------------
  532.  
  533. `A D'
  534.      If the current article is a collection of other articles (for
  535.      instance, a digest), you might use this command to enter a group
  536.      based on the that article (`gnus-summary-enter-digest-group').
  537.      Gnus will try to guess what article type is currently displayed
  538.      unless you give a prefix to this command, which forces a "digest"
  539.      interpretation.  Basically, whenever you see a message that is a
  540.      collection of other messages on some format, you `A D' and read
  541.      these messages in a more convenient fashion.
  542.  
  543. `C-t'
  544.      Toggle truncation of summary lines
  545.      (`gnus-summary-toggle-truncation').
  546.  
  547. `='
  548.      Expand the summary buffer window (`gnus-summary-expand-window').
  549.      If given a prefix, force an `article' window configuration.
  550.  
  551. 
  552. File: gnus,  Node: Exiting the Summary Buffer,  Prev: Various Summary Stuff,  Up: The Summary Buffer
  553.  
  554. Exiting the Summary Buffer
  555. ==========================
  556.  
  557.    Exiting from the summary buffer will normally update all info on the
  558. group and return you to the group buffer.
  559.  
  560. `Z Z'
  561. `q'
  562.      Exit the current group and update all information on the group
  563.      (`gnus-summary-exit'). `gnus-summary-prepare-exit-hook' is called
  564.      before doing much of the exiting, and calls
  565.      `gnus-summary-expire-articles' by default.
  566.      `gnus-summary-exit-hook' is called after finishing the exiting
  567.      process.
  568.  
  569. `Z E'
  570. `Q'
  571.      Exit the current group without updating any information on the
  572.      group (`gnus-summary-exit-no-update').
  573.  
  574. `Z c'
  575. `c'
  576.      Mark all unticked articles in the group as read and then exit
  577.      (`gnus-summary-catchup-and-exit').
  578.  
  579. `Z C'
  580.      Mark all articles, even the ticked ones, as read and then exit
  581.      (`gnus-summary-catchup-all-and-exit').
  582.  
  583. `Z n'
  584.      Mark all articles as read and go to the next group
  585.      (`gnus-summary-catchup-and-goto-next-group').
  586.  
  587. `Z R'
  588.      Exit this group, and then enter it again
  589.      (`gnus-summary-reselect-current-group').  If given a prefix, select
  590.      all articles, both read and unread.
  591.  
  592. `Z G'
  593. `M-g'
  594.      Exit the group, check for new articles in the group, and select the
  595.      group (`gnus-summary-rescan-group').  If given a prefix, select all
  596.      articles, both read and unread.
  597.  
  598. `Z N'
  599.      Exit the group and go to the next group
  600.      (`gnus-summary-next-group').
  601.  
  602. `Z P'
  603.      Exit the group and go to the previous group
  604.      (`gnus-summary-prev-group').
  605.  
  606.    `gnus-exit-group-hook' is called when you exit the current group.
  607.  
  608.    If you're in the habit of exiting groups, and then changing your mind
  609. about it, you might set `gnus-kill-summary-on-exit' to `nil'.  If you
  610. do that, Gnus won't kill the summary buffer when you exit it.  (Quelle
  611. surprise!)  Instead it will change the name of the buffer to something
  612. like `*Dead Summary ... *' and install a minor mode called
  613. `gnus-dead-summary-mode'.  Now, if you switch back to this buffer,
  614. you'll find that all keys are mapped to a function called
  615. `gnus-summary-wake-up-the-dead'.  So tapping any keys in a dead summary
  616. buffer will result in a live, normal summary buffer.
  617.  
  618.    There will never be more than one dead summary buffer at any one
  619. time.
  620.  
  621.    The data on the current group will be updated (which articles you
  622. have read, which articles you have replied to, etc.) when you exit the
  623. summary buffer.  If the `gnus-use-cross-reference' variable is `t'
  624. (which is the default), articles that are cross-referenced to this
  625. group and are marked as read, will also be marked as read in the other
  626. subscribed groups they were cross-posted to.  If this variable is
  627. neither `nil' nor `t', the article will be marked as read in both
  628. subscribed and unsubscribed groups.
  629.  
  630.    Marking cross-posted articles as read ensures that you'll never have
  631. to read the same article more than once.  Unless, of course, somebody
  632. has posted it to several groups separately.  Posting the same article to
  633. several groups (not cross-posting) is called "spamming", and you are by
  634. law required to send nasty-grams to anyone who perpetrates such a
  635. heinous crime.
  636.  
  637.    Remember: Cross-posting is kinda ok, but posting the same article
  638. separately to several groups is not.  Massive cross-posting (aka.
  639. "velveeta") is to be avoided.
  640.  
  641.    One thing that may cause Gnus to not do the cross-posting thing
  642. correctly is if you use an NNTP server that supports XOVER (which is
  643. very nice, because it speeds things up considerably) which does not
  644. include the `Xref' header in its NOV lines.  This is Evil, but all too
  645. common, alas, alack.  Gnus tries to Do The Right Thing even with XOVER
  646. by registering the `Xref' lines of all articles you actually read, but
  647. if you kill the articles, or just mark them as read without reading
  648. them, Gnus will not get a chance to snoop the `Xref' lines out of these
  649. articles, and will be unable to use the cross reference mechanism.
  650.  
  651.    To check whether your NNTP server includes the `Xref' header in its
  652. overview files, try `telnet your.nntp.server nntp', `MODE READER' on
  653. `inn' servers, and then say `LIST overview.fmt'.  This may not work,
  654. but if it does, and the last line you get does not read `Xref:full',
  655. then you should shout and whine at your news admin until she includes
  656. the `Xref' header in the overview files.
  657.  
  658.    If you want Gnus to get the `Xref's right all the time, you have to
  659. set `gnus-nov-is-evil' to `t', which slows things down considerably.
  660.  
  661.    C'est la vie.
  662.  
  663. 
  664. File: gnus,  Node: The Article Buffer,  Next: Composing Messages,  Prev: The Summary Buffer,  Up: Top
  665.  
  666. The Article Buffer
  667. ******************
  668.  
  669.    The articles are displayed in the article buffer, of which there is
  670. only one.  All the summary buffers share the same article buffer unless
  671. you tell Gnus otherwise.
  672.  
  673. * Menu:
  674.  
  675. * Hiding Headers::        Deciding what headers should be displayed.
  676. * Using MIME::            Pushing articles through MIME before reading them.
  677. * Customizing Articles::  Tailoring the look of the articles.
  678. * Article Keymap::        Keystrokes available in the article buffer
  679. * Misc Article::          Other stuff.
  680.  
  681. 
  682. File: gnus,  Node: Hiding Headers,  Next: Using MIME,  Up: The Article Buffer
  683.  
  684. Hiding Headers
  685. ==============
  686.  
  687.    The top section of each article is the "head".  (The rest is the
  688. "body", but you may have guessed that already.)
  689.  
  690.    There is a lot of useful information in the head: the name of the
  691. person who wrote the article, the date it was written and the subject
  692. of the article.  That's well and nice, but there's also lots of
  693. information most people do not want to see--what systems the article
  694. has passed through before reaching you, the `Message-ID', the
  695. `References', etc. ad nauseum--and you'll probably want to get rid of
  696. some of those lines.  If you want to keep all those lines in the
  697. article buffer, you can set `gnus-show-all-headers' to `t'.
  698.  
  699.    Gnus provides you with two variables for sifting headers:
  700.  
  701. `gnus-visible-headers'
  702.      If this variable is non-`nil', it should be a regular expression
  703.      that says what headers you wish to keep in the article buffer.  All
  704.      headers that do not match this variable will be hidden.
  705.  
  706.      For instance, if you only want to see the name of the person who
  707.      wrote the article and the subject, you'd say:
  708.  
  709.           (setq gnus-visible-headers "^From:\\|^Subject:")
  710.  
  711.      This variable can also be a list of regexps to match headers that
  712.      are to remain visible.
  713.  
  714. `gnus-ignored-headers'
  715.      This variable is the reverse of `gnus-visible-headers'.  If this
  716.      variable is set (and `gnus-visible-headers' is `nil'), it should
  717.      be a regular expression that matches all lines that you want to
  718.      hide.  All lines that do not match this variable will remain
  719.      visible.
  720.  
  721.      For instance, if you just want to get rid of the `References' line
  722.      and the `Xref' line, you might say:
  723.  
  724.           (setq gnus-ignored-headers "^References:\\|^Xref:")
  725.  
  726.      This variable can also be a list of regexps to match headers that
  727.      are to be removed.
  728.  
  729.      Note that if `gnus-visible-headers' is non-`nil', this variable
  730.      will have no effect.
  731.  
  732.    Gnus can also sort the headers for you.  (It does this by default.)
  733. You can control the sorting by setting the `gnus-sorted-header-list'
  734. variable.  It is a list of regular expressions that says in what order
  735. the headers are to be displayed.
  736.  
  737.    For instance, if you want the name of the author of the article
  738. first, and then the subject, you might say something like:
  739.  
  740.      (setq gnus-sorted-header-list '("^From:" "^Subject:"))
  741.  
  742.    Any headers that are to remain visible, but are not listed in this
  743. variable, will be displayed in random order after all the headers that
  744. are listed in this variable.
  745.  
  746.    You can hide further boring headers by entering
  747. `gnus-article-hide-boring-headers' into `gnus-article-display-hook'.
  748. What this function does depends on the `gnus-boring-article-headers'
  749. variable.  It's a list, but this list doesn't actually contain header
  750. names.  Instead is lists various "boring conditions" that Gnus can
  751. check and remove from sight.
  752.  
  753.    These conditions are:
  754. `empty'
  755.      Remove all empty headers.
  756.  
  757. `newsgroups'
  758.      Remove the `Newsgroups' header if it only contains the current
  759.      group name.
  760.  
  761. `followup-to'
  762.      Remove the `Followup-To' header if it is identical to the
  763.      `Newsgroups' header.
  764.  
  765. `reply-to'
  766.      Remove the `Reply-To' header if it lists the same address as the
  767.      `From' header.
  768.  
  769. `date'
  770.      Remove the `Date' header if the article is less than three days
  771.      old.
  772.  
  773.    To include the four first elements, you could say something like;
  774.  
  775.      (setq gnus-boring-article-headers
  776.            '(empty newsgroups followup-to reply-to))
  777.  
  778.    This is also the default value for this variable.
  779.  
  780. 
  781. File: gnus,  Node: Using MIME,  Next: Customizing Articles,  Prev: Hiding Headers,  Up: The Article Buffer
  782.  
  783. Using MIME
  784. ==========
  785.  
  786.    Mime is a standard for waving your hands through the air, aimlessly,
  787. while people stand around yawning.
  788.  
  789.    MIME, however, is a standard for encoding your articles, aimlessly,
  790. while all newsreaders die of fear.
  791.  
  792.    MIME may specify what character set the article uses, the encoding
  793. of the characters, and it also makes it possible to embed pictures and
  794. other naughty stuff in innocent-looking articles.
  795.  
  796.    Gnus handles MIME by shoving the articles through
  797. `gnus-show-mime-method', which is `metamail-buffer' by default.  Set
  798. `gnus-show-mime' to `t' if you want to use MIME all the time.  However,
  799. if `gnus-strict-mime' is non-`nil', the MIME method will only be used
  800. if there are MIME headers in the article.
  801.  
  802.    It might be best to just use the toggling functions from the summary
  803. buffer to avoid getting nasty surprises. (For instance, you enter the
  804. group `alt.sing-a-long' and, before you know it, MIME has decoded the
  805. sound file in the article and some horrible sing-a-long song comes
  806. streaming out out your speakers, and you can't find the volume button,
  807. because there isn't one, and people are starting to look at you, and
  808. you try to stop the program, but you can't, and you can't find the
  809. program to control the volume, and everybody else in the room suddenly
  810. decides to look at you disdainfully, and you'll feel rather stupid.)
  811.  
  812.    Any similarity to real events and people is purely coincidental.
  813. Ahem.
  814.  
  815. 
  816. File: gnus,  Node: Customizing Articles,  Next: Article Keymap,  Prev: Using MIME,  Up: The Article Buffer
  817.  
  818. Customizing Articles
  819. ====================
  820.  
  821.    The `gnus-article-display-hook' is called after the article has been
  822. inserted into the article buffer.  It is meant to handle all treatment
  823. of the article before it is displayed.
  824.  
  825.    By default it contains `gnus-article-hide-headers',
  826. `gnus-article-treat-overstrike', and `gnus-article-maybe-highlight',
  827. but there are thousands, nay millions, of functions you can put in this
  828. hook.  For an overview of functions *note Article Highlighting::.,
  829. *note Article Hiding::., *note Article Washing::., *note Article
  830. Buttons::. and *note Article Date::..
  831.  
  832.    You can, of course, write your own functions.  The functions are
  833. called from the article buffer, and you can do anything you like,
  834. pretty much.  There is no information that you have to keep in the
  835. buffer--you can change everything.  However, you shouldn't delete any
  836. headers.  Instead make them invisible if you want to make them go away.
  837.  
  838. 
  839. File: gnus,  Node: Article Keymap,  Next: Misc Article,  Prev: Customizing Articles,  Up: The Article Buffer
  840.  
  841. Article Keymap
  842. ==============
  843.  
  844.    Most of the keystrokes in the summary buffer can also be used in the
  845. article buffer.  They should behave as if you typed them in the summary
  846. buffer, which means that you don't actually have to have a summary
  847. buffer displayed while reading.  You can do it all from the article
  848. buffer.
  849.  
  850.    A few additional keystrokes are available:
  851.  
  852. `SPACE'
  853.      Scroll forwards one page (`gnus-article-next-page').
  854.  
  855. `DEL'
  856.      Scroll backwards one page (`gnus-article-prev-page').
  857.  
  858. `C-c ^'
  859.      If point is in the neighborhood of a `Message-ID' and you press
  860.      `r', Gnus will try to get that article from the server
  861.      (`gnus-article-refer-article').
  862.  
  863. `C-c C-m'
  864.      Send a reply to the address near point (`gnus-article-mail').  If
  865.      given a prefix, include the mail.
  866.  
  867. `s'
  868.      Reconfigure the buffers so that the summary buffer becomes visible
  869.      (`gnus-article-show-summary').
  870.  
  871. `?'
  872.      Give a very brief description of the available keystrokes
  873.      (`gnus-article-describe-briefly').
  874.  
  875. `TAB'
  876.      Go to the next button, if any (`gnus-article-next-button'.  This
  877.      only makes sense if you have buttonizing turned on.
  878.  
  879. `M-TAB'
  880.      Go to the previous button, if any (`gnus-article-prev-button'.
  881.  
  882. 
  883. File: gnus,  Node: Misc Article,  Prev: Article Keymap,  Up: The Article Buffer
  884.  
  885. Misc Article
  886. ============
  887.  
  888. `gnus-single-article-buffer'
  889.      If non-`nil', use the same article buffer for all the groups.
  890.      (This is the default.)  If `nil', each group will have its own
  891.      article buffer.
  892.  
  893. `gnus-article-prepare-hook'
  894.      This hook is called right after the article has been inserted into
  895.      the article buffer.  It is mainly intended for functions that do
  896.      something depending on the contents; it should probably not be
  897.      used for changing the contents of the article buffer.
  898.  
  899. `gnus-article-display-hook'
  900.      This hook is called as the last thing when displaying an article,
  901.      and is intended for modifying the contents of the buffer, doing
  902.      highlights, hiding headers, and the like.
  903.  
  904. `gnus-article-mode-hook'
  905.      Hook called in article mode buffers.
  906.  
  907. `gnus-article-mode-line-format'
  908.      This variable is a format string along the same lines as
  909.      `gnus-summary-mode-line-format'.  It accepts exactly the same
  910.      format specifications as that variable.
  911.  
  912. `gnus-break-pages'
  913.      Controls whether "page breaking" is to take place.  If this
  914.      variable is non-`nil', the articles will be divided into pages
  915.      whenever a page delimiter appears in the article.  If this
  916.      variable is `nil', paging will not be done.
  917.  
  918. `gnus-page-delimiter'
  919.      This is the delimiter mentioned above.  By default, it is `^L'
  920.      (form linefeed).
  921.  
  922. 
  923. File: gnus,  Node: Composing Messages,  Next: Select Methods,  Prev: The Article Buffer,  Up: Top
  924.  
  925. Composing Messages
  926. ******************
  927.  
  928.    All commands for posting and mailing will put you in a message buffer
  929. where you can edit the article all you like, before you send the article
  930. by pressing `C-c C-c'.  *Note Top: (message)Top.  If you are in a
  931. foreign news group, and you wish to post the article using the foreign
  932. server, you can give a prefix to `C-c C-c' to make Gnus try to post
  933. using the foreign server.
  934.  
  935. * Menu:
  936.  
  937. * Mail::                 Mailing and replying.
  938. * Post::                 Posting and following up.
  939. * Posting Server::       What server should you post via?
  940. * Mail and Post::        Mailing and posting at the same time.
  941. * Archived Messages::    Where Gnus stores the messages you've sent.
  942.  
  943.    Also see *note Canceling and Superseding::. for information on how to
  944. remove articles you shouldn't have posted.
  945.  
  946. 
  947. File: gnus,  Node: Mail,  Next: Post,  Up: Composing Messages
  948.  
  949. Mail
  950. ====
  951.  
  952.    Variables for customizing outgoing mail:
  953.  
  954. `gnus-uu-digest-headers'
  955.      List of regexps to match headers included in digested messages.
  956.      The headers will be included in the sequence they are matched.
  957.  
  958. 
  959. File: gnus,  Node: Post,  Next: Posting Server,  Prev: Mail,  Up: Composing Messages
  960.  
  961. Post
  962. ====
  963.  
  964.    Variables for composing news articles:
  965.  
  966. `gnus-sent-message-ids-file'
  967.      Gnus will keep a `Message-ID' history file of all the mails it has
  968.      sent.  If it discovers that it has already sent a mail, it will
  969.      ask the user whether to re-send the mail.  (This is primarily
  970.      useful when dealing with SOUP packets and the like where one is
  971.      apt to sent the same packet multiple times.)  This variable says
  972.      what the name of this history file is.  It is
  973.      `~/News/Sent-Message-IDs' by default.  Set this variable to `nil'
  974.      if you don't want Gnus to keep a history file.
  975.  
  976. `gnus-sent-message-ids-length'
  977.      This variable says how many `Message-ID's to keep in the history
  978.      file.  It is 1000 by default.
  979.  
  980. 
  981. File: gnus,  Node: Posting Server,  Next: Mail and Post,  Prev: Post,  Up: Composing Messages
  982.  
  983. Posting Server
  984. ==============
  985.  
  986.    When you press those magical `C-c C-c' keys to ship off your latest
  987. (extremely intelligent, of course) article, where does it go?
  988.  
  989.    Thank you for asking.  I hate you.
  990.  
  991.    It can be quite complicated.  Normally, Gnus will use the same native
  992. server.  However.  If your native server doesn't allow posting, just
  993. reading, you probably want to use some other server to post your
  994. (extremely intelligent and fabulously interesting) articles.  You can
  995. then set the `gnus-post-method' to some other method:
  996.  
  997.      (setq gnus-post-method '(nnspool ""))
  998.  
  999.    Now, if you've done this, and then this server rejects your article,
  1000. or this server is down, what do you do then?  To override this variable
  1001. you can use a non-zero prefix to the `C-c C-c' command to force using
  1002. the "current" server for posting.
  1003.  
  1004.    If you give a zero prefix (i. e., `C-u 0 C-c C-c') to that command,
  1005. Gnus will prompt you for what method to use for posting.
  1006.  
  1007.    You can also set `gnus-post-method' to a list of select methods.  If
  1008. that's the case, Gnus will always prompt you for what method to use for
  1009. posting.
  1010.  
  1011. 
  1012. File: gnus,  Node: Mail and Post,  Next: Archived Messages,  Prev: Posting Server,  Up: Composing Messages
  1013.  
  1014. Mail and Post
  1015. =============
  1016.  
  1017.    Here's a list of variables that are relevant to both mailing and
  1018. posting:
  1019.  
  1020. `gnus-mailing-list-groups'
  1021.      If your news server offers groups that are really mailing lists
  1022.      that are gatewayed to the NNTP server, you can read those groups
  1023.      without problems, but you can't post/followup to them without some
  1024.      difficulty.  One solution is to add a `to-address' to the group
  1025.      parameters (*note Group Parameters::.).  An easier thing to do is
  1026.      set the `gnus-mailing-list-groups' to a regexp that match the
  1027.      groups that really are mailing lists.  Then, at least, followups
  1028.      to the mailing lists will work most of the time.  Posting to these
  1029.      groups (`a') is still a pain, though.
  1030.  
  1031.    You may want to do spell-checking on messages that you send out.
  1032. Or, if you don't want to spell-check by hand, you could add automatic
  1033. spell-checking via the `ispell' package:
  1034.  
  1035.      (add-hook 'message-send-hook 'ispell-message)
  1036.  
  1037. 
  1038. File: gnus,  Node: Archived Messages,  Prev: Mail and Post,  Up: Composing Messages
  1039.  
  1040. Archived Messages
  1041. =================
  1042.  
  1043.    Gnus provides a few different methods for storing the mail you send.
  1044. The default method is to use the "archive virtual server" to store the
  1045. mail.  If you want to disable this completely, you should set
  1046. `gnus-message-archive-group' to `nil'.
  1047.  
  1048.    `gnus-message-archive-method' says what virtual server Gnus is to
  1049. use to store sent messages.  It is `(nnfolder "archive"
  1050. (nnfolder-directory "~/Mail/archive/"))' by default, but you can use any
  1051. mail select method (`nnml', `nnmbox', etc.).  However, `nnfolder' is a
  1052. quite likeable select method for doing this sort of thing.  If you
  1053. don't like the default directory chosen, you could say something like:
  1054.  
  1055.      (setq gnus-message-archive-method
  1056.            '(nnfolder "archive"
  1057.                       (nnfolder-inhibit-expiry t)
  1058.                       (nnfolder-active-file "~/News/sent-mail/active")
  1059.                       (nnfolder-directory "~/News/sent-mail/")))
  1060.  
  1061.    Gnus will insert `Gcc' headers in all outgoing messages that point
  1062. to one or more group(s) on that server.  Which group to use is
  1063. determined by the `gnus-message-archive-group' variable.
  1064.  
  1065.    This variable can be:
  1066.  
  1067.    * a string Messages will be saved in that group.
  1068.  
  1069.    * a list of strings Messages will be saved in all those groups.
  1070.  
  1071.    * an alist of regexps, functions and forms When a key "matches", the
  1072.      result is used.
  1073.  
  1074.    Let's illustrate:
  1075.  
  1076.    Just saving to a single group called `MisK':
  1077.      (setq gnus-message-archive-group "MisK")
  1078.  
  1079.    Saving to two groups, `MisK' and `safe':
  1080.      (setq gnus-message-archive-group '("MisK" "safe"))
  1081.  
  1082.    Save to different groups based on what group you are in:
  1083.      (setq gnus-message-archive-group
  1084.            '(("^alt" "sent-to-alt")
  1085.              ("mail" "sent-to-mail")
  1086.              (".*" "sent-to-misc")))
  1087.  
  1088.    More complex stuff:
  1089.      (setq gnus-message-archive-group
  1090.            '((if (message-news-p)
  1091.                  "misc-news"
  1092.                "misc-mail")))
  1093.  
  1094.    This is the default.
  1095.  
  1096.    How about storing all news messages in one file, but storing all mail
  1097. messages in one file per month:
  1098.  
  1099.      (setq gnus-message-archive-group
  1100.            '((if (message-news-p)
  1101.                  "misc-news"
  1102.                (concat "mail." (format-time-string
  1103.                                 "%Y-%m" (current-time))))))
  1104.  
  1105.    Now, when you send a message off, it will be stored in the
  1106. appropriate group.  (If you want to disable storing for just one
  1107. particular message, you can just remove the `Gcc' header that has been
  1108. inserted.)  The archive group will appear in the group buffer the next
  1109. time you start Gnus, or the next time you press `F' in the group
  1110. buffer.  You can enter it and read the articles in it just like you'd
  1111. read any other group.  If the group gets really big and annoying, you
  1112. can simply rename if (using `G r' in the group buffer) to something
  1113. nice - `misc-mail-september-1995', or whatever.  New messages will
  1114. continue to be stored in the old (now empty) group.
  1115.  
  1116.    That's the default method of archiving sent mail.  Gnus also offers
  1117. two other variables for the people who don't like the default method.
  1118. In that case you should set `gnus-message-archive-group' to `nil'; this
  1119. will disable archiving.
  1120.  
  1121.    XEmacs 19.13 doesn't have `format-time-string', so you'll have to
  1122. use a different value for `gnus-message-archive-group' there.
  1123.  
  1124. `gnus-outgoing-message-group'
  1125.      All outgoing messages will be put in this group.  If you want to
  1126.      store all your outgoing mail and articles in the group
  1127.      `nnml:archive', you set this variable to that value.  This
  1128.      variable can also be a list of group names.
  1129.  
  1130.      If you want to have greater control over what group to put each
  1131.      message in, you can set this variable to a function that checks the
  1132.      current newsgroup name and then returns a suitable group name (or
  1133.      list of names).
  1134.  
  1135. 
  1136. File: gnus,  Node: Select Methods,  Next: Scoring,  Prev: Composing Messages,  Up: Top
  1137.  
  1138. Select Methods
  1139. **************
  1140.  
  1141.    A "foreign group" is a group that is not read by the usual (or
  1142. default) means.  It could be, for instance, a group from a different
  1143. NNTP server, it could be a virtual group, or it could be your own
  1144. personal mail group.
  1145.  
  1146.    A foreign group (or any group, really) is specified by a "name" and
  1147. a "select method".  To take the latter first, a select method is a list
  1148. where the first element says what backend to use (eg. `nntp',
  1149. `nnspool', `nnml') and the second element is the "server name".  There
  1150. may be additional elements in the select method, where the value may
  1151. have special meaning for the backend in question.
  1152.  
  1153.    One could say that a select method defines a "virtual server"--so we
  1154. do just that (*note The Server Buffer::.).
  1155.  
  1156.    The "name" of the group is the name the backend will recognize the
  1157. group as.
  1158.  
  1159.    For instance, the group `soc.motss' on the NNTP server
  1160. `some.where.edu' will have the name `soc.motss' and select method
  1161. `(nntp "some.where.edu")'.  Gnus will call this group, in all
  1162. circumstances, `nntp+some.where.edu:soc.motss', even though the `nntp'
  1163. backend just knows this group as `soc.motss'.
  1164.  
  1165.    The different methods all have their peculiarities, of course.
  1166.  
  1167. * Menu:
  1168.  
  1169. * The Server Buffer::     Making and editing virtual servers.
  1170. * Getting News::          Reading USENET news with Gnus.
  1171. * Getting Mail::          Reading your personal mail with Gnus.
  1172. * Other Sources::         Reading directories, files, SOUP packets.
  1173. * Combined Groups::       Combining groups into one group.
  1174.  
  1175. 
  1176. File: gnus,  Node: The Server Buffer,  Next: Getting News,  Up: Select Methods
  1177.  
  1178. The Server Buffer
  1179. =================
  1180.  
  1181.    Traditionally, a "server" is a machine or a piece of software that
  1182. one connects to, and then requests information from.  Gnus does not
  1183. connect directly to any real servers, but does all transactions through
  1184. one backend or other.  But that's just putting one layer more between
  1185. the actual media and Gnus, so we might just as well say that each
  1186. backend represents a virtual server.
  1187.  
  1188.    For instance, the `nntp' backend may be used to connect to several
  1189. different actual NNTP servers, or, perhaps, to many different ports on
  1190. the same actual NNTP server.  You tell Gnus which backend to use, and
  1191. what parameters to set by specifying a "select method".
  1192.  
  1193.    These select methods specifications can sometimes become quite
  1194. complicated--say, for instance, that you want to read from the NNTP
  1195. server `news.funet.fi' on port number `13', which hangs if queried for
  1196. NOV headers and has a buggy select.  Ahem.  Anyways, if you had to
  1197. specify that for each group that used this server, that would be too
  1198. much work, so Gnus offers a way of naming select methods, which is what
  1199. you do in the server buffer.
  1200.  
  1201.    To enter the server buffer, user the `^'
  1202. (`gnus-group-enter-server-mode') command in the group buffer.
  1203.  
  1204. * Menu:
  1205.  
  1206. * Server Buffer Format::      You can customize the look of this buffer.
  1207. * Server Commands::           Commands to manipulate servers.
  1208. * Example Methods::           Examples server specifications.
  1209. * Creating a Virtual Server:: An example session.
  1210. * Servers and Methods::       You can use server names as select methods.
  1211. * Unavailable Servers::       Some servers you try to contact may be down.
  1212.  
  1213.    `gnus-server-mode-hook' is run when creating the server buffer.
  1214.  
  1215. 
  1216. File: gnus,  Node: Server Buffer Format,  Next: Server Commands,  Up: The Server Buffer
  1217.  
  1218. Server Buffer Format
  1219. --------------------
  1220.  
  1221.    You can change the look of the server buffer lines by changing the
  1222. `gnus-server-line-format' variable.  This is a `format'-like variable,
  1223. with some simple extensions:
  1224.  
  1225. `h'
  1226.      How the news is fetched--the backend name.
  1227.  
  1228. `n'
  1229.      The name of this server.
  1230.  
  1231. `w'
  1232.      Where the news is to be fetched from--the address.
  1233.  
  1234. `s'
  1235.      The opened/closed/denied status of the server.
  1236.  
  1237.    The mode line can also be customized by using the
  1238. `gnus-server-mode-line-format' variable.  The following specs are
  1239. understood:
  1240.  
  1241. `S'
  1242.      Server name.
  1243.  
  1244. `M'
  1245.      Server method.
  1246.  
  1247.    Also *note Formatting Variables::..
  1248.  
  1249. 
  1250. File: gnus,  Node: Server Commands,  Next: Example Methods,  Prev: Server Buffer Format,  Up: The Server Buffer
  1251.  
  1252. Server Commands
  1253. ---------------
  1254.  
  1255. `a'
  1256.      Add a new server (`gnus-server-add-server').
  1257.  
  1258. `e'
  1259.      Edit a server (`gnus-server-edit-server').
  1260.  
  1261. `SPACE'
  1262.      Browse the current server (`gnus-server-read-server').
  1263.  
  1264. `q'
  1265.      Return to the group buffer (`gnus-server-exit').
  1266.  
  1267. `k'
  1268.      Kill the current server (`gnus-server-kill-server').
  1269.  
  1270. `y'
  1271.      Yank the previously killed server (`gnus-server-yank-server').
  1272.  
  1273. `c'
  1274.      Copy the current server (`gnus-server-copy-server').
  1275.  
  1276. `l'
  1277.      List all servers (`gnus-server-list-servers').
  1278.  
  1279. 
  1280. File: gnus,  Node: Example Methods,  Next: Creating a Virtual Server,  Prev: Server Commands,  Up: The Server Buffer
  1281.  
  1282. Example Methods
  1283. ---------------
  1284.  
  1285.    Most select methods are pretty simple and self-explanatory:
  1286.  
  1287.      (nntp "news.funet.fi")
  1288.  
  1289.    Reading directly from the spool is even simpler:
  1290.  
  1291.      (nnspool "")
  1292.  
  1293.    As you can see, the first element in a select method is the name of
  1294. the backend, and the second is the "address", or "name", if you will.
  1295.  
  1296.    After these two elements, there may be a arbitrary number of
  1297. (VARIABLE FORM) pairs.
  1298.  
  1299.    To go back to the first example--imagine that you want to read from
  1300. port `15' from that machine.  This is what the select method should
  1301. look like then:
  1302.  
  1303.      (nntp "news.funet.fi" (nntp-port-number 15))
  1304.  
  1305.    You should read the documentation to each backend to find out what
  1306. variables are relevant, but here's an `nnmh' example.
  1307.  
  1308.    `nnmh' is a mail backend that reads a spool-like structure.  Say you
  1309. have two structures that you wish to access: One is your private mail
  1310. spool, and the other is a public one.  Here's the possible spec for you
  1311. private mail:
  1312.  
  1313.      (nnmh "private" (nnmh-directory "~/private/mail/"))
  1314.  
  1315.    (This server is then called `private', but you may have guessed
  1316. that.)
  1317.  
  1318.    Here's the method for a public spool:
  1319.  
  1320.      (nnmh "public"
  1321.            (nnmh-directory "/usr/information/spool/")
  1322.            (nnmh-get-new-mail nil))
  1323.  
  1324. 
  1325. File: gnus,  Node: Creating a Virtual Server,  Next: Servers and Methods,  Prev: Example Methods,  Up: The Server Buffer
  1326.  
  1327. Creating a Virtual Server
  1328. -------------------------
  1329.  
  1330.    If you're saving lots of articles in the cache by using persistent
  1331. articles, you may want to create a virtual server to read the cache.
  1332.  
  1333.    First you need to add a new server.  The `a' command does that.  It
  1334. would probably be best to use `nnspool' to read the cache.  You could
  1335. also use `nnml' or `nnmh', though.
  1336.  
  1337.    Type `a nnspool RET cache RET'.
  1338.  
  1339.    You should now have a brand new `nnspool' virtual server called
  1340. `cache'.  You now need to edit it to have the right definitions.  Type
  1341. `e' to edit the server.  You'll be entered into a buffer that will
  1342. contain the following:
  1343.  
  1344.      (nnspool "cache")
  1345.  
  1346.    Change that to:
  1347.  
  1348.      (nnspool "cache"
  1349.           (nnspool-spool-directory "~/News/cache/")
  1350.           (nnspool-nov-directory "~/News/cache/")
  1351.           (nnspool-active-file "~/News/cache/active"))
  1352.  
  1353.    Type `C-c C-c' to return to the server buffer.  If you now press
  1354. `RET' over this virtual server, you should be entered into a browse
  1355. buffer, and you should be able to enter any of the groups displayed.
  1356.  
  1357. 
  1358. File: gnus,  Node: Servers and Methods,  Next: Unavailable Servers,  Prev: Creating a Virtual Server,  Up: The Server Buffer
  1359.  
  1360. Servers and Methods
  1361. -------------------
  1362.  
  1363.    Wherever you would normally use a select method (eg.
  1364. `gnus-secondary-select-method', in the group select method, when
  1365. browsing a foreign server) you can use a virtual server name instead.
  1366. This could potentially save lots of typing.  And it's nice all over.
  1367.  
  1368.